package com.pizza.spring.rmi.start;

import java.util.ArrayList;

import com.pizza.gui.konto.RejestrujPanel;
import com.pizza.mail.SendMail;
import com.pizza.spring.rmi.Adres;
import com.pizza.spring.rmi.Logowanie;
import com.pizza.spring.rmi.Produkt;
import com.pizza.spring.rmi.Rejestruj;
import com.pizza.spring.rmi.User;
import com.pizza.spring.rmi.Zamowienie;

public class Fasada {
	SendMail sendMail;
	Logowanie logowanie;
	Rejestruj rejestruj;
	Zamowienie zamowienie;
	public Fasada newInstance(SendMail sendMail, Logowanie logowanie, Rejestruj rejestruj,
			Zamowienie zamowienie) {
		
		setLogowanie(logowanie);
		setRejestruj(rejestruj);
		setZamowienie(zamowienie);
		setSendMail(sendMail);
		return this;
	}
	public Fasada() {
		super();
	}
	public SendMail getSendMail() {
		return sendMail;
	}
	public void setSendMail(SendMail sendMail) {
		this.sendMail = sendMail;
	}
	public Logowanie getLogowanie() {
		return logowanie;
	}
	public void setLogowanie(Logowanie logowanie) {
		this.logowanie = logowanie;
	}
	public Rejestruj getRejestruj() {
		return rejestruj;
	}
	public void setRejestruj(Rejestruj rejestruj) {
		this.rejestruj = rejestruj;
	}
	public Zamowienie getZamowienie() {
		return zamowienie;
	}
	public void setZamowienie(Zamowienie zamowienie) {
		this.zamowienie = zamowienie;
	}
	public void rejestrujUser(String login , String pas1,String pas2,String email) {
		rejestruj.zarejestruj(login, pas1, pas2, email);
	}
	public void rejestrujAdres(
			   String name,
			   String lastname,
			   String numerTelefonu,
			   String city,
			   String ulica,
			   int zip_code,
			   int zip_code1,
			   int numerDomu,
			   boolean acceptShareDate,
			   int idUser	) {
		rejestruj.rejestruj2(name, lastname, numerTelefonu,
				city, 
				ulica, zip_code, zip_code1, numerDomu, 
				acceptShareDate, idUser);
	}
	public void zamow(User user, Adres adres,String adresZamowienia,ArrayList<Produkt>produkt) {
		zamowienie.zamow(user, adres, adresZamowienia, produkt);
	}
	public User zaloguj(String login,String password) {
		return logowanie.zaloguj(login, password);
	}
	public Adres pobierzAdresUsera(int id) {
		return logowanie.pobierzAdres(id);
	}
	public boolean sprawdzLogin(String login) {
		return rejestruj.sprawdzLogin(login);
	}
	private void wyslijMail(String adress,String login) {
		sendMail.wyslij(adress, login);
	}
	public ArrayList<Produkt> pobierzWszystkieProdukty() {
		return zamowienie.getAllPizza();
	}
	public void edytujAdres(Adres adres) {
		rejestruj.edytujAdres(adres);
	}
}
